1. Field of the Invention
The present invention relates to the field of information processing. More particularly, the invention relates to a method, program product and an apparatus for reconfiguring a xe2x80x9cserver processxe2x80x9d without the need to restart the server process.
2. Background of the Related Art
Generally, a distributed computer system comprises a collection of loosely coupled machines (mainframe, workstations or personal computers) interconnected by a communication network. Through a distributed computer system, a user or client may access various servers to store information, print documents, access databases, acquire client/server computing or gain access to the Internet. These services often require software applications running on the user""s desktop to interact with other applications that might reside on one or more remote machines. Thus, in a client/server computing environment, one or more clients and one or more servers, along with the operating system and various interprocess communication (IPC) methods or mechanisms, form a composite that permits distributed computation, analysis and presentation.
For example, in client/server applications, a xe2x80x9cserver processxe2x80x9d is typically a software application or routine that is started on a well-known computer that, in turn, operates continuously, waiting to connect and service the requests from various clients. Thus, servers are broadly defined as computers, and/or application programs executing thereon, that provide various functional operations and data upon request. Clients are broadly defined to include computers and/or applications that issue requests for services from the server. Thus, while clients and servers may be distributed in various computers across a network, they may also reside in a single computer, with individual software applications providing client and/or server functions. Once a client has established a connection with the server, the client and server communicate using commonly-known or proprietary protocol defined and documented by the server.
In a client-server system, the server process provides various interfaces to clients for invoking actions on the server that provide the functionality requested by a client. When an action is invoked on the server, the server process operates in accordance with certain configuration information, such as the location of its data directory, the executable path name, and the like. Thus, most server processes have a certain amount of configuration information that is associated with them. Examples of some configuration information or options may include the maximum number of connections allowed, the priority associated with client request processing, or the level of security enforced when accepting client connections. From time to time, the configuration information of a given server process may be changed as needed by a server administrator, which may be a human operator or an automated process, in order to adapt to the needs of clients and/or the network.
However, one problem with current methods of configuring a server process is that the server process must be ended and then restarted in order to load and execute new configuration parameters. Consequently, the server process is inactive for a period of time during which the configuration parameters are activated. In a client-server system, it is desirable to be able to minimize, or more preferably, eliminate the downtime of a server process because access to that server process during this time is not possible, thereby preventing communication with clients. As a result, requests from clients to an inactive server process are queued for an indefinite time or, alternatively, are returned to the clients in the form of an error message indicating the unavailability of the server.
Therefore, a need exists in the art for a method and apparatus for configuring a server process without the need to end and restart the server process.
The present invention generally relates to a method, a program product, and an apparatus for configuring a server process without the need to end and restart the server process. Specifically, in one embodiment of the present invention, a new server process is started with updated configuration information. If an existing server process is not detected by the new server process, then the new server process simply starts accepting client connections. However, if an existing server process is currently running, then the new server process assumes the role of a client and, in turn, initiates a configuration request. The configuration request contains the necessary information for the existing server process to update its xe2x80x9coldxe2x80x9d configuration to conform with the xe2x80x9cnew configurationxe2x80x9d in accordance with the configuration request. Once the configuration request has been serviced by the existing server process, the new server process ends and informs the server administrator that an existing server process has been updated with the new configuration data.
One advantage of the present method for updating a server process is to provide a seamless process to update the configuration of an existing server process without interrupting service to the clients. Namely, the downtime associated with server process reconfiguration is eliminated. Additionally, the server administrator is no longer burdened with the need to confirm the existence of a current server process or its configuration. The present invention will automatically update the configuration of an existing server process or, if appropriate, becomes an existing server process and immediately accepts client connections.